<?php
/**
 *
 *
 */
class PageBase extends TPage{
	public function onInit($param){
        parent::onInit($param);
        $this->InitializeComponent();
		$this->Authorization();
    }

	protected function Authorization(){
		if($this->Page->PagePath == "Login"){
			return true;
		}else{
			if(is_null($_SESSION["IdUsuario"]))
			{
				 $this->Response->redirect("?page=Logout");
			}
        }
		
		if(!isset($_SESSION["Logon"]) /* && $page->PagePath != "Login" */ ){
			if(!isset($_COOKIE["Logon"])){
				return false;
			}
			else{
				$_SESSION["Logon"] = 	$_COOKIE["Logon"];
    			$_SESSION["IdUsuario"] = $_COOKIE["IdUsuario"];

				return true;
			}
		}
		
	}


    /**
     * PageBase::InitializeComponent()
     *
     * @return
     */
    public function InitializeComponent()
    {
        if($this->Application->Parameters->offsetExists("PropelConfigFile")){
            Propel::init($this->Application->Parameters["PropelConfigFile"]);
        }
    }

    /**
     * PageBase::Back()
     *
     * @return
     */
    public function Back($url)
    {
        $this->Response->redirect($url);
    }

    /**
     * PageBase::LoadListControl()
     *
     * @param string $listControl Nombre del objeto.
     * @param string $className Nombre de la clase de datos.
     * @param string $dataValueField Nombre del campo usado para los valores.
     * @param string $dataTextField Nombre del campo usado para los textos.
     * @param Criteria $criteria Criteria usada para filtrar.
     * @param string $valueFirst Valor del primer elemento
     * @param string $textFirst Texto del primer elemento.
     * @return
     */
    public function LoadListControl(
        $listControl,
        $className,
        $dataValueField,
        $dataTextField,
        $criteria = "",
        $valueFirst = "0",
        $textFirst = "Seleccione"
    ){
        $dataObject =   new $className();

        if($criteria == "" || !($criteria instanceof Criteria)){
            $criteria   =   new Criteria();
        }

        $dataToBind     =   $dataObject->getPeer()->doSelect($criteria);
        $listControl    =   $this->getRegisteredObject($listControl);
        $listControl->DataValueField    =   $dataValueField;
        $listControl->DataTextField     =   $dataTextField;
        $listControl->DataSource        =   $dataToBind;

        if($textFirst != "" && $valueFirst != ""){
            $listControl->PromptValue       =   $valueFirst;
            $listControl->PromptText        =   $textFirst;
        }

        $listControl->dataBind();

//        if(is_string($listControl) || is_object($listControl)){
//            if(is_string($listControl)){
//                $listControl    =   $this->getRegisteredObject($listControl);
//
//                if(is_null($listControl)){
//                    throw new TException(sprintf("El elemento % seleccionado no ha sido encontrado", $listControl));
//                }
//            }
//
//            if(get_parent_class($listControl) == "TListControl"){
//
//            }
//
//
//
//        }
//        else{
//            throw new TException(sprintf("El elemento % seleccionado no es un objeto ni un nombre de objeto", $listControl));
//        }
    }
}
?>